/**
 ******************************************************************************
 *
 * @file       coreconstants.h
 * @author     The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
 *             Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009.
 * @addtogroup GCSPlugins GCS Plugins
 * @{
 * @addtogroup CorePlugin Core Plugin
 * @{
 * @brief The Core GCS plugin
 *****************************************************************************/
/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
 * for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */

#ifndef CORECONSTANTS_H
#define CORECONSTANTS_H

namespace Core {
namespace Constants {
#define GCS_VERSION_MAJOR   1
#define GCS_VERSION_MINOR   0
#define GCS_VERSION_RELEASE 0

#define STRINGIFY_INTERNAL(x) #x
#define STRINGIFY(x)          STRINGIFY_INTERNAL(x)

#define GCS_VERSION \
    STRINGIFY(GCS_VERSION_MAJOR) \
    "." STRINGIFY(GCS_VERSION_MINOR) \
    "." STRINGIFY(GCS_VERSION_RELEASE)

const char *const GCS_VERSION_LONG = GCS_VERSION;
const char *const GCS_AUTHOR = "The OpenPilot Project";
const char *const GCS_HELP   = "http://wiki.openpilot.org";

#undef GCS_VERSION
#undef STRINGIFY
#undef STRINGIFY_INTERNAL

// modes
const char *const MODE_WELCOME   = "Welcome";
const char *const MODE_UAVGADGET = "Mode 1";
const int P_MODE_WELCOME                  = 100;
const int P_MODE_UAVGADGET                = 90;

// menubar
const char *const MENU_BAR                = "GCS.MenuBar";

// menus
const char *const M_FILE                  = "GCS.Menu.File";
const char *const M_FILE_OPEN             = "GCS.Menu.File.Open";
const char *const M_FILE_NEW              = "GCS.Menu.File.New";
const char *const M_FILE_RECENTFILES      = "GCS.Menu.File.RecentFiles";
const char *const M_EDIT                  = "GCS.Menu.Edit";
const char *const M_EDIT_ADVANCED         = "GCS.Menu.Edit.Advanced";
const char *const M_TOOLS                 = "GCS.Menu.Tools";
const char *const M_WINDOW                = "GCS.Menu.Window";
const char *const M_WINDOW_PANES          = "GCS.Menu.Window.Panes";
const char *const M_HELP                  = "GCS.Menu.Help";

// contexts
const char *const C_GLOBAL                = "Global Context";
const int C_GLOBAL_ID = 0;
const char *const C_WELCOME_MODE          = "Core.WelcomeMode";
const char *const C_UAVGADGET_MODE        = "Core.UAVGadgetMode";
const char *const C_UAVGADGETMANAGER      = "Core.UAVGadgetManager";
const char *const C_NAVIGATION_PANE       = "Core.NavigationPane";
const char *const C_PROBLEM_PANE          = "Core.ProblemPane";

// default editor kind
const char *const K_DEFAULT_TEXT_EDITOR   = QT_TRANSLATE_NOOP("OpenWith::Editors", "Plain Text Editor");
const char *const K_DEFAULT_BINARY_EDITOR = QT_TRANSLATE_NOOP("OpenWith::Editors", "Binary Editor");

// actions
const char *const UNDO                    = "GCS.Undo";
const char *const REDO                    = "GCS.Redo";
const char *const COPY                    = "GCS.Copy";
const char *const PASTE                   = "GCS.Paste";
const char *const CUT                     = "GCS.Cut";
const char *const SELECTALL               = "GCS.SelectAll";

const char *const NEW                     = "GCS.New";
const char *const OPEN                    = "GCS.Open";
const char *const OPEN_WITH               = "GCS.OpenWith";
const char *const REVERTTOSAVED           = "GCS.RevertToSaved";
const char *const SAVE                    = "GCS.Save";
const char *const SAVEAS                  = "GCS.SaveAs";
const char *const SAVEALL                 = "GCS.SaveAll";
const char *const EXIT                    = "GCS.Exit";

const char *const OPTIONS                 = "GCS.Options";
const char *const TOGGLE_SIDEBAR          = "GCS.ToggleSidebar";
const char *const TOGGLE_FULLSCREEN       = "GCS.ToggleFullScreen";

const char *const MINIMIZE_WINDOW         = "GCS.MinimizeWindow";
const char *const ZOOM_WINDOW             = "GCS.ZoomWindow";

const char *const SPLIT                   = "GCS.Split";
const char *const SPLIT_SIDE_BY_SIDE      = "GCS.SplitSideBySide";
const char *const REMOVE_CURRENT_SPLIT    = "GCS.RemoveCurrentSplit";
const char *const REMOVE_ALL_SPLITS       = "GCS.RemoveAllSplits";
const char *const GOTO_OTHER_SPLIT        = "GCS.GotoOtherSplit";
const char *const SAVEASDEFAULT           = "GCS.SaveAsDefaultLayout";
const char *const RESTOREDEFAULT          = "GCS.RestoreDefaultLayout";
const char *const HIDE_TOOLBARS           = "GCS.HideToolbars";
const char *const CLOSE                   = "GCS.Close";
const char *const CLOSEALL                = "GCS.CloseAll";
const char *const CLOSEOTHERS             = "GCS.CloseOthers";
const char *const GOTONEXT                = "GCS.GotoNext";
const char *const GOTOPREV                = "GCS.GotoPrevious";
const char *const GOTONEXTINHISTORY       = "GCS.GotoNextInHistory";
const char *const GOTOPREVINHISTORY       = "GCS.GotoPreviousInHistory";
const char *const GO_BACK                 = "GCS.GoBack";
const char *const GO_FORWARD              = "GCS.GoForward";
const char *const GOTOPREVIOUSGROUP       = "GCS.GotoPreviousTabGroup";
const char *const GOTONEXTGROUP           = "GCS.GotoNextTabGroup";
const char *const WINDOWSLIST             = "GCS.WindowsList";
const char *const ABOUT_OPENPILOTGCS      = "GCS.AboutOpenPilotGCS";
const char *const ABOUT_PLUGINS           = "GCS.AboutPlugins";
const char *const ABOUT_AUTHORS           = "GCS.AboutAuthors";
const char *const ABOUT_QT                = "GCS.AboutQt";
const char *const S_RETURNTOEDITOR        = "GCS.ReturnToEditor";
const char *const OPEN_IN_EXTERNAL_EDITOR = "GCS.OpenInExternalEditor";

// default groups
const char *const G_DEFAULT_ONE           = "GCS.Group.Default.One";
const char *const G_DEFAULT_TWO           = "GCS.Group.Default.Two";
const char *const G_DEFAULT_THREE         = "GCS.Group.Default.Three";

// main menu bar groups
const char *const G_FILE                  = "GCS.Group.File";
const char *const G_EDIT                  = "GCS.Group.Edit";
const char *const G_VIEW                  = "GCS.Group.View";
const char *const G_TOOLS                 = "GCS.Group.Tools";
const char *const G_WINDOW                = "GCS.Group.Window";
const char *const G_HELP                  = "GCS.Group.Help";

// file menu groups
const char *const G_FILE_NEW              = "GCS.Group.File.New";
const char *const G_FILE_OPEN             = "GCS.Group.File.Open";
const char *const G_FILE_PROJECT          = "GCS.Group.File.Project";
const char *const G_FILE_SAVE             = "GCS.Group.File.Save";
const char *const G_FILE_CLOSE            = "GCS.Group.File.Close";
const char *const G_FILE_OTHER            = "GCS.Group.File.Other";

// edit menu groups
const char *const G_EDIT_UNDOREDO         = "GCS.Group.Edit.UndoRedo";
const char *const G_EDIT_COPYPASTE        = "GCS.Group.Edit.CopyPaste";
const char *const G_EDIT_SELECTALL        = "GCS.Group.Edit.SelectAll";
const char *const G_EDIT_ADVANCED         = "GCS.Group.Edit.Advanced";

const char *const G_EDIT_FIND             = "GCS.Group.Edit.Find";
const char *const G_EDIT_OTHER            = "GCS.Group.Edit.Other";

// advanced edit menu groups

const char *const G_EDIT_FORMAT         = "GCS.Group.Edit.Format";
const char *const G_EDIT_COLLAPSING     = "GCS.Group.Edit.Collapsing";
const char *const G_EDIT_BLOCKS         = "GCS.Group.Edit.Blocks";
const char *const G_EDIT_FONT = "GCS.Group.Edit.Font";
const char *const G_EDIT_EDITOR         = "GCS.Group.Edit.Editor";

// window menu groups
const char *const G_WINDOW_SIZE         = "GCS.Group.Window.Size";
const char *const G_WINDOW_PANES        = "GCS.Group.Window.Panes";
const char *const G_WINDOW_SPLIT        = "GCS.Group.Window.Split";
const char *const G_WINDOW_NAVIGATE     = "GCS.Group.Window.Navigate";
const char *const G_WINDOW_OTHER        = "GCS.Group.Window.Other";
const char *const G_WINDOW_HIDE_TOOLBAR = "GCS.Group.Window.Hide";

// help groups (global)
const char *const G_HELP_HELP         = "GCS.Group.Help.Help";
const char *const G_HELP_ABOUT        = "GCS.Group.Help.About";

const char *const ICON_MINUS          = ":/core/images/minus.png";
const char *const ICON_PLUS           = ":/core/images/plus.png";
const char *const ICON_NEWFILE        = ":/core/images/filenew.png";
const char *const ICON_OPENFILE       = ":/core/images/fileopen.png";
const char *const ICON_SAVEFILE       = ":/core/images/filesave.png";
const char *const ICON_UNDO           = ":/core/images/undo.png";
const char *const ICON_REDO           = ":/core/images/redo.png";
const char *const ICON_COPY           = ":/core/images/editcopy.png";
const char *const ICON_PASTE          = ":/core/images/editpaste.png";
const char *const ICON_CUT = ":/core/images/editcut.png";
const char *const ICON_NEXT           = ":/core/images/next.png";
const char *const ICON_PREV           = ":/core/images/prev.png";
const char *const ICON_DIR = ":/core/images/dir.png";
const char *const ICON_CLEAN_PANE     = ":/core/images/clean_pane_small.png";
const char *const ICON_CLEAR          = ":/core/images/clear.png";
const char *const ICON_CLOSE          = ":/core/images/closebutton.png";
const char *const ICON_FIND           = ":/core/images/find.png";
const char *const ICON_FINDNEXT       = ":/core/images/findnext.png";
const char *const ICON_REPLACE        = ":/core/images/replace.png";
const char *const ICON_RESET          = ":/core/images/reset.png";
const char *const ICON_MAGNIFIER      = ":/core/images/magnifier.png";
const char *const ICON_TOGGLE_SIDEBAR = ":/core/images/sidebaricon.png";
const char *const ICON_PLUGIN         = ":/core/images/pluginicon.png";
const char *const ICON_EXIT           = ":/core/images/exiticon.png";
const char *const ICON_OPTIONS        = ":/core/images/optionsicon.png";
const char *const ICON_HELP           = ":/core/images/helpicon.png";
const char *const ICON_OPENPILOT      = ":/core/images/openpiloticon.png";


// wizard kind
const char *const WIZARD_TYPE_FILE  = "GCS::WizardType::File";
const char *const WIZARD_TYPE_CLASS = "GCS::WizardType::Class";
} // namespace Constants
} // namespace Core

#endif // CORECONSTANTS_H
